use std::cmp::*;
use std::collections::*;
use std::io::*;
use std::string::*;

fn main() {
    let stdin = stdin();
    let mut lines = stdin.lock().lines();

    // 简单使用 unwrap 处理输入
    let input_str = lines.next().unwrap().unwrap();
    let k: usize = lines.next().unwrap().unwrap().parse().unwrap();

    let mut pq = BinaryHeap::new();

    for (i, c) in input_str.chars().enumerate() {
        pq.push(Reverse((c.to_string(), i + 1)));
    }

    let mut st = HashSet::new();
    let mut res = (pq.peek().unwrap().0).0.clone();

    while st.len() < k {
        let tmp = pq.pop().unwrap().0;
        st.insert(tmp.0.clone());
        res = tmp.0.clone();
        if tmp.1 < input_str.len() {
            let new_str = format!("{}{}", tmp.0, input_str.chars().nth(tmp.1).unwrap());
            pq.push(Reverse((new_str, tmp.1 + 1)));
        }
    }

    println!("{}", res);
}
